package com.xcl.service;

import com.zzg.entity.*;

import java.util.List;

/**
 * @ClassName WaybillServiceInter
 * @Description 运单服务层接口类
 * @Author: xiaochaolei
 * @date 2021/6/21 14:50
 * @Version 1. 0
 */
public interface WaybillServiceInter {
    /**
     * 新增运单
     * @param waybill 运单信息
     * @return 影响行数
     */
    public int insertWaybill(Waybill waybill);

    /**
     * 查询托运单号
     * @param id 托运单号
     * @return 托运信息
     */
    public Waybill getWaybillById(String id);

    /**
     * 新增地区
     * @param tmsRegion 地区信息
     * @return 影响的行数
     */
    public int insertTmsRegion(TmsRegion tmsRegion);

    /**
     * 得到所有的分站信息
     * @return 分站集合
     */
    public List<Substation> getAllSubstation();

    /**
     * 新增发货人
     * @param consigner 发货人信息
     * @return 影响行数
     */
    public int insertConsigner(Consigner consigner);


    /**
     * 新增收货人信息
     * @param consignee 收货人信息
     * @return 影响行数
     */
    public int insertConsignee(Consignee consignee);


    /**
     * 新增货运信息
     * @param freightinformationTable 货运信息
     * @return 影响的行数
     */
    public int insertFreightinformation(FreightinformationTable freightinformationTable);


    /**
     * 根据收货人姓名得到收货人的信息
     * @return 收货人集合
     */
    public List<String> getAllConsigneeByClientname();

    /**
     * 根据电话号码得到收货人信息
     * @return 收货人集合
     */
    public List<String> getAllConsigneeByPhone();



    /**
     * 根据id得到收货人信息
     * @param consigneeId 收货人id
     * @return 收货人信息
     */
    public Consignee getAllConsigneeByConsigneeId(String consigneeId);



    /**
     * 根据发货人姓名得到发货人的信息
     * @return 发货人集合
     */
    public List<String> getAllConsignerByClientname();

    /**
     * 根据电话号码得到发货人信息
     * @return 发货人集合
     */
    public List<String> getAllConsignerByPhone();


    /**
     * 根据id得到发货人信息
     * @param consignerId 发货人id
     * @return 发货人信息
     */
    public Consigner getAllConsignerByConsignerId(String consignerId);


    /**
     * 地区是否存在
     * @param area 地区信息
     * @return 是否存在
     */
    public TmsRegion isExistConsignerArea(String area);


    /**
     * 判断发货人是否存在
     * @param consigner 发货人信息
     * @return 发货人信息
     */
    public Consigner isExistConsigner(Consigner consigner);


    /**
     * 判断收货人是否存在
     * @param consignee 收货人信息
     * @return 收货人信息
     */
    public Consignee isExistConsignee(Consignee consignee);



    /**
     * 修改发货人信息
     * @param consigner 发货人信息
     * @return 影响行数
     */
    public int amendConsigner(Consigner consigner);


    /**e
     * 修改收货人信息
     * @param consignee 收货人信息
     * @return 影响行数
     */
    public int amendConsigne(Consignee consignee);


    /**
     * 新增运单状态
     * @param waybillstate 运单id
     * @return 影响行数
     */
    public int insertWaybillState(String waybillstate);


    /**
     * 新增费用明细
     * @param costbreakdown 费用明细
     * @return 影响行数
     */
    public int insertCostbreakdown(Costbreakdown costbreakdown);

    /**
     * 新增财务管理
     * @param finance 财务管理
     * @return 影响行数
     */
    public int insertFinance(Finance finance);

    /**
     * 根据id得到费用详细信息
     * @param id 费用id
     * @return 费用详细信息
     */
    public Costbreakdown getCostbreakdownById(String id);

}
